const Msg = {
  /**
   * Loading转圈圈
   * @param {nunber} mask - 不传默认不显示透明蒙层
   * @param {string} msg - 提示语 默认值：加载中
   */
  ShowLoading(mask, msg) {
    let Mask = mask ? true : false;
    let Msg = msg ? msg : '加载中...';
    uni.showLoading({
      title: Msg,
      mask: Mask,
    });
  },
  /**
   * Loading取消转圈圈
   */
  HideLoading() {
    uni.hideLoading();
  },
  /**
   * Toast提示
   * @param {string} msg - 提示内容
   * @param {string} icon - icon图标 成功success 加载中loading 无样式none
   * @param {number} time - 提示存在时长
   */
  ShowToast(msg, icon, time) {
    let Icon = icon === 1 ? 'success' : 'none';
    uni.showToast({
      title: msg,
      icon: Icon,
      duration: time || 1500,
    });
  },
  /**
   * 带确认的提示框
   * @param {string} msg - 提示内容
   * @param {string} title - 提示标题
   * @param {object} options - 其他参数
   */
  Alert(
    msg,
    title = '提示',
    options = {
      confirmColor: '#5397BA',
    },
  ) {
    return new Promise((resolve, reject) => {
      uni.showModal({
        title: title || '',
        content: msg,
        showCancel: false,
        ...options,
        success(res) {
          // 此弹窗只有确认键，没有取消键，所以只写了resolve没有reject
          resolve(res);
        },
      });
    });
  },
  /**
   * 带确认和取消的提示框
   * @param {string} msg - 提示内容
   * @param {string} title - 提示标题
   * @param {object} options - 其他参数
   */
  Confirm(
    msg,
    title = '提示',
    options = {
      cancelColor: '#000000',
      confirmColor: '#5397BA',
    },
  ) {
    return new Promise((resolve, reject) => {
      uni.showModal({
        title: title || '',
        content: msg,
        ...options,
        success(res) {
          resolve(res);
        },
      });
    });
  },
};

module.exports = Msg;
